////////////////////////////////////////////////////////////////////////
// Last svn revision: $Id:  $ 
////////////////////////////////////////////////////////////////////////
/// \class drow::MLC::def::DefaultComplexOp
///
/// \brief   
///
/// \author Olivia Wasalski         <oliviawasalski@triumf.ca>
///
/// REVISION HISTORY:\n
/// 	22/03/12 : Olivia Wasalski - New File \n
///
/// \details 	
///
////////////////////////////////////////////////////////////////////////

#ifndef __drow_MLC_def_DefaultComplexOp__
#define __drow_MLC_def_DefaultComplexOp__

#include "MLC/AComplexOp.hh"

namespace drow {
namespace MLC {
    class Complex;
namespace def {

class DefaultComplexOp : public AComplexOp {
public:
    Complex ComplexConjugate( const Complex& a );
    Complex Add( const Complex& a, const Complex& b );
    Complex Subtract( const Complex& a, const Complex& b );
    Complex Multiply( const Complex& a, const Complex& b );
    double MagnitudeSquared( const Complex& a );
    double Magnitude( const Complex& a );
    double Angle( const Complex& a );
};

} // namespace def
} // namespace MLC
} // namespace drow

#endif // __drow_MLC_DefaultComplexOp__

